import request from "@/utils/request";

const BIGCAP_BASE_URL = "/api/v1/bigcap";

const BigcapAPI = {
  /** 获取大盘底表分页数据 */
  getPage(queryParams?: BigcapPageQuery) {
    return request<any, PageResult<BigcapPageVO[]>>({
      url: `${BIGCAP_BASE_URL}/page`,
      method: "get",
      params: queryParams,
    });
  },
  /**
   * 获取大盘底表表单数据
   *
   * @param id 大盘底表ID
   * @returns 大盘底表表单数据
   */
  getFormData(id: number) {
    return request<any, BigcapForm>({
      url: `${BIGCAP_BASE_URL}/${id}/form`,
      method: "get",
    });
  },

  /**
   *  添加大盘底表
   *
   *  @param data 大盘底表表单数据
   */
  add(data: BigcapForm) {
    return request({
      url: `${BIGCAP_BASE_URL}/add`,
      method: "post",
      data: data,
    });
  },

  /**
   * 更新大盘底表
   *
   * @param id 大盘底表ID
   * @param data 大盘底表表单数据
   */
  update(id: number, data: BigcapForm) {
    return request({
      url: `${BIGCAP_BASE_URL}/${id}`,
      method: "put",
      data: data,
    });
  },

  /**
   * 批量删除大盘底表，多个以英文逗号(,)分割
   *
   * @param ids 大盘底表ID字符串，多个以英文逗号(,)分割
   */
  deleteByIds(ids: string) {
    return request({
      url: `${BIGCAP_BASE_URL}/${ids}`,
      method: "delete",
    });
  },

  /**
   * 导出大盘数据Excel
   *
   * @param queryParams 查询参数
   * @returns Blob数据
   */
  exportExcel(queryParams?: BigcapPageQuery) {
    return request({
      url: `${BIGCAP_BASE_URL}/export`,
      method: "get",
      params: { ...queryParams, pageSize: -1 },
      responseType: "blob"
    });
  },

  /**
   * 导入大盘数据
   *
   * @param file Excel文件
   * @returns 导入结果
   */
  importExcel(file: File) {
    const formData = new FormData();
    formData.append("file", file);
    
    return request<any, ExcelResult>({
      url: `${BIGCAP_BASE_URL}/import`,
      method: "post",
      data: formData,
      headers: {
        "Content-Type": "multipart/form-data"
      },
      timeout: 30000
    });
  },

  /**
   * 下载导入模板
   *
   * @returns Blob数据
   */
  downloadTemplate() {
    return request({
      url: `${BIGCAP_BASE_URL}/template`,
      method: "get",
      responseType: "blob"
    });
  }
}

export default BigcapAPI;

/** 大盘底表分页查询参数 */
export interface BigcapPageQuery extends PageQuery {
}

/** 大盘底表表单对象 */
export interface BigcapForm {
  /** 主键ID */
  id?:  number;
  /** 日期 */
  date?:  Date;
  /** 流量指数 */
  trafficIndex?:  number;
  /** 流量指数同比(年) */
  trafficIndexYoy?:  string;
  /** 访客指数 */
  visitorIndex?:  number;
  /** 访客指数同比(年) */
  visitorIndexYoy?:  string;
  /** 关注人数 */
  followers?:  number;
  /** 关注人数同比(年) */
  followersYoy?:  string;
  /** 加购人数 */
  addToCart?:  number;
  /** 加购人数同比(年) */
  addToCartYoy?:  string;
  /** 类目搜索指数 */
  categorySearchIndex?:  number;
  /** 类目搜索指数同比(年) */
  categorySearchIndexYoy?:  string;
  /** 类目点击指数 */
  categoryClickIndex?:  number;
  /** 类目点击指数同比(年) */
  categoryClickIndexYoy?:  string;
  /** 搜索点击率 */
  clickRate?:  number;
  /** 搜索点击率同比(年) */
  clickRateYoy?:  string;
  /** 成交金额指数 */
  transactionAmountIndex?:  number;
  /** 成交金额指数同比(年) */
  transactionAmountIndexYoy?:  string;
  /** 成交件数指数 */
  transactionVolumeIndex?:  number;
  /** 成交件数指数同比(年) */
  transactionVolumeIndexYoy?:  string;
  /** 成交转化率 */
  conversionRate?:  number;
  /** 成交转化率同比(年) */
  conversionRateYoy?:  string;
  /** 成交客单价 */
  customerPrice?:  number;
  /** 成交客单价同比(年) */
  customerPriceYoy?:  string;
  /** 品牌数 */
  brandCount?:  number;
  /** 品牌数同比(年) */
  brandCountYoy?:  string;
  /** 被访问品牌数 */
  visitedBrandCount?:  number;
  /** 被访问品牌数同比(年) */
  visitedBrandCountYoy?:  string;
  /** 动销品牌数 */
  activeBrandCount?:  number;
  /** 动销品牌数同比(年) */
  activeBrandCountYoy?:  string;
  /** 店铺数 */
  storeCount?:  number;
  /** 店铺数同比(年) */
  storeCountYoy?:  string;
  /** 被访问店铺数 */
  visitedStoreCount?:  number;
  /** 被访问店铺数同比(年) */
  visitedStoreCountYoy?:  string;
  /** 动销店铺数 */
  activeStoreCount?:  number;
  /** 动销店铺数同比(年) */
  activeStoreCountYoy?:  string;
  /** 被访问商品数 */
  visitedProductCount?:  number;
  /** 被访问商品数同比(年) */
  visitedProductCountYoy?:  string;
  /** 动销商品数 */
  activeProductCount?:  number;
  /** 动销商品数同比(年) */
  activeProductCountYoy?:  string;
}

/** 大盘底表分页对象 */
export interface BigcapPageVO {
  /** 主键ID */
  id?: number;
  /** 日期 */
  date?: Date;
  /** 流量指数 */
  trafficIndex?: number;
  /** 流量指数同比(年) */
  trafficIndexYoy?: string;
  /** 访客指数 */
  visitorIndex?: number;
  /** 访客指数同比(年) */
  visitorIndexYoy?: string;
  /** 关注人数 */
  followers?: number;
  /** 关注人数同比(年) */
  followersYoy?: string;
  /** 加购人数 */
  addToCart?: number;
  /** 加购人数同比(年) */
  addToCartYoy?: string;
  /** 类目搜索指数 */
  categorySearchIndex?: number;
  /** 类目搜索指数同比(年) */
  categorySearchIndexYoy?: string;
  /** 类目点击指数 */
  categoryClickIndex?: number;
  /** 类目点击指数同比(年) */
  categoryClickIndexYoy?: string;
  /** 搜索点击率 */
  clickRate?: number;
  /** 搜索点击率同比(年) */
  clickRateYoy?: string;
  /** 成交金额指数 */
  transactionAmountIndex?: number;
  /** 成交金额指数同比(年) */
  transactionAmountIndexYoy?: string;
  /** 成交件数指数 */
  transactionVolumeIndex?: number;
  /** 成交件数指数同比(年) */
  transactionVolumeIndexYoy?: string;
  /** 成交转化率 */
  conversionRate?: number;
  /** 成交转化率同比(年) */
  conversionRateYoy?: string;
  /** 成交客单价 */
  customerPrice?: number;
  /** 成交客单价同比(年) */
  customerPriceYoy?: string;
  /** 品牌数 */
  brandCount?: number;
  /** 品牌数同比(年) */
  brandCountYoy?: string;
  /** 被访问品牌数 */
  visitedBrandCount?: number;
  /** 被访问品牌数同比(年) */
  visitedBrandCountYoy?: string;
  /** 动销品牌数 */
  activeBrandCount?: number;
  /** 动销品牌数同比(年) */
  activeBrandCountYoy?: string;
  /** 店铺数 */
  storeCount?: number;
  /** 店铺数同比(年) */
  storeCountYoy?: string;
  /** 被访问店铺数 */
  visitedStoreCount?: number;
  /** 被访问店铺数同比(年) */
  visitedStoreCountYoy?: string;
  /** 动销店铺数 */
  activeStoreCount?: number;
  /** 动销店铺数同比(年) */
  activeStoreCountYoy?: string;
  /** 被访问商品数 */
  visitedProductCount?: number;
  /** 被访问商品数同比(年) */
  visitedProductCountYoy?: string;
  /** 动销商品数 */
  activeProductCount?: number;
  /** 动销商品数同比(年) */
  activeProductCountYoy?: string;
}
